home *** CD-ROM | disk | FTP | other *** search
/ The X-Philes (2nd Revision) / The X-Philes Number 1 (1995).iso / xphiles / hp48hor2 / usnd.doc < prev    next >
Text File  |  1995-03-31  |  5KB  |  149 lines

  1. USEND & URECV 
  2. Universal IR Send and Receive 
  3. Version 2.0, Febuary 1993 
  4. by Dan Kirkland 
  5.  
  6.  
  7. USEND and URECV are fast, all purpose, send and receive 
  8. programs for FAST data transfer between two HP48's. 
  9. With USEND and URECV, you can send objects directly from the 
  10. stack without storing them in a variable. 
  11. Try putting a library on stack level one and sending it! 
  12. You must use USEND on the sending HP48 and URECV on the send HP48. 
  13.  
  14.                     FAST!  COMPARE! 
  15.  
  16. PACMAN directory from goodies disk #7, 8308.5 bytes. 
  17. program used          SEND       TSEND (v2.0)   USEND (v1.0)* 
  18. time in seconds     115.026       66.072         28.707 
  19.  
  20. QED.font from QED1.07, 2244 bytes 
  21. program used          SEND       TSEND (v2.0)   USEND (v1.0)* 
  22. time in seconds      42.273       23.456         6.252 
  23.  
  24. A list of small variables, (unknown bytes). 
  25. program used          SEND      TSEND (v2.0)    USEND (v1.0)* 
  26. time in seconds      52.114       31.896         10.483 
  27.  
  28. All times were with flag -36 (RECV overwrite active) and 
  29. flag -39 (I/O messages suppressed) set to provide the 
  30. fastest times for SEND and TSEND. 
  31. *USEND, Version 2.0, is a little faster (6% ?) than Version 1.0. 
  32.  
  33.                      
  34.                     USEND  USAGE 
  35.  
  36. USEND will send ANY type object from stack level one. 
  37. USEND uses flag #1 (user flag). 
  38.  
  39.    With flag #1 clear (no 1 in the status area). 
  40.  
  41. Defined variables (both global and local variables that have 
  42. something 'stored' in them) are sent and stored in the current 
  43. directory on the receiving HP48. 
  44. Undefined variable names will be sent and left on the stack 
  45. of the receiving HP48. 
  46.  
  47.   SENDING LISTS 
  48.  
  49. The objects in a list will be sent separatly and defined 
  50. variables in the list will be stored in the current directory. 
  51. To send a list as an complete object, either put the list as 
  52. an object in another list or set flag #1 (see below). 
  53. Defined variable names nested inside two or more list will 
  54. be sent as as names in a list. The object stored in the 
  55. variable will not be sent. 
  56. Only defined variable names are stored in the current 
  57. directory, all other objects are left on the stack of the 
  58. receiving HP48. 
  59.  
  60.   With flag #1 set (a 1 showing in the status area). 
  61.  
  62. Stack level one object sent as is to stack level one of the 
  63. receiving HP48. 
  64. This means that all variable names will be sent as variable 
  65. names only. 
  66. Lists will be sent as one complete object. 
  67. The receiving HP48 will receive to stack level one exactly 
  68. what was sent from level one of the sending HP48. 
  69.  
  70.  
  71.                     URECV  USAGE 
  72.  
  73. Just execute URECV on the receiving HP48. 
  74. URECV does NOT use any flags (flag #1 only needed for USEND). 
  75.  
  76.                     SAMPLE PROGRAMS 
  77.  
  78. SSTK    (Send Stack)     BYTES: #1332h 34.5 
  79.          Arguments:      obj#n ... obj#1 #n  -> 
  80. \<< 
  81.  \->LIST 
  82.  1 
  83.  \->LIST  
  84.  USEND 
  85. \>> 
  86.  
  87. RSTK    (Recv Stack)     BYTES: #CA2BHh 32 
  88.          Arguments:                          ->  obj#n ... obj#1 
  89.  
  90. \<< 
  91.  URECV 
  92.  OBJ\-> 
  93.  DROP 
  94. \>> 
  95.  
  96. With flag #1 clear, USEND will send the objects in a list 
  97. seperately and will store all defined names in the HOME 
  98. directory. Set flag #1 or use this next program to send a 
  99. list so the receiving HP48 will receive it as the same list. 
  100.  
  101. SLIST   (Send List)      BYTES: #49F1h 33 
  102.          Arguments:      { obj#1 ... obj#n } -> 
  103. \<< 
  104.  1 
  105.  \->LIST  
  106.  USEND 
  107. \>> 
  108.  
  109.                     COMMENTS 
  110.  
  111. USEND and URECV do not require any setup (except maybe  
  112. flag #1). 
  113. USEND and URECV are quiet. They do not display what is 
  114. being sent. If the data transfer arrow is blinking, then 
  115. everthing is okay. 
  116.  
  117. USEND and URECV do not do packet checks like the built in 
  118. SEND program (and TSEND). So, don't move the HP48's once 
  119. you start the transfer. 
  120.  
  121. URECV does a checksum check, so any object is sure to be 
  122. the same as the object that was sent. 
  123.  
  124. With USEND, there is no longer any need to store a library 
  125. in a variable to send it. Just put the library on the stack 
  126. and send it. It will be received on the stack of the receiving 
  127. HP48 and can then be stored in the proper port with no 
  128. variable to purge. 
  129.  
  130. USEND and URECV were written and tested on HP48 version E. 
  131. USEND and URECV were written in "system" RPL using supported, 
  132. unsupported, and some, as yet, undocumented ROM entry points. 
  133.  
  134. Feel free to use and/or do with these programs what you wish. 
  135. I make no guarantees. If you are overly worried that these 
  136. programs (or any other program that I write) may cause you 
  137. problems, THEN DON'T USE THEM! 
  138.  
  139. Thanks to Detlef Mueller for his RPL and library tools, 
  140. without which these programs would not be. 
  141. Thanks to James Shirey for the use of his version J hp48; 
  142. these programs work okay on version J. 
  143.  
  144. Any comments, questions, or suggestions send email to: 
  145.  
  146.                    kirkland@ee.utah.edu 
  147.  
  148. Dan Kirkland 
  149.